package com.warmheart.core.util;

import net.sf.json.JSONArray;
import net.sf.json.JSONNull;
import net.sf.json.JSONObject;

public class ParamJsonObjectUtil {

    public static String getString(JSONObject jsonObj, String key) {
        if (jsonObj == null || jsonObj.isNullObject() || jsonObj.isEmpty()) {
            return null;
        }
        Object tempObj = jsonObj.get(key);
        if (tempObj == null || tempObj instanceof JSONNull) {
            return null;
        }
        return String.valueOf(tempObj);
    }

    public static Integer getInteger(JSONObject jsonObj, String key) {
        if (jsonObj == null || jsonObj.isNullObject() || jsonObj.isEmpty()) {
            return null;
        }

        Object tempObj = jsonObj.get(key);
        if (tempObj == null || tempObj instanceof JSONNull) {
            return null;
        }

        return Integer.parseInt(String.valueOf(tempObj));
    }

    public static JSONObject getJsonObject(JSONObject jsonObj, String key) {
        if (jsonObj == null || jsonObj.isNullObject() || jsonObj.isEmpty()) {
            return null;
        }

        Object tempObj = jsonObj.get(key);
        if (tempObj == null || tempObj instanceof JSONNull) {
            return null;
        }

        return (JSONObject) tempObj;
    }

    public static JSONArray getJsonArray(JSONObject jsonObj, String key) {
        if (jsonObj == null || jsonObj.isNullObject() || jsonObj.isEmpty()) {
            return null;
        }

        Object tempObj = jsonObj.get(key);
        if (tempObj == null || tempObj instanceof JSONNull) {
            return null;
        }

        return (JSONArray) tempObj;
    }

    public static Boolean getBoolean(JSONObject jsonObj, String key) {
        if (jsonObj == null || jsonObj.isNullObject() || jsonObj.isEmpty()) {
            return null;
        }

        Object tempObj = jsonObj.get(key);
        if (tempObj == null || tempObj instanceof JSONNull) {
            return null;
        }

        return Boolean.parseBoolean(String.valueOf(tempObj));
    }

}
